package com.example.permissionsystem1_1.common.businessFunction;

import com.example.permissionsystem1_1.common.entity.baseRspDto.*;
import com.example.permissionsystem1_1.common.util.RspResult;

public class BaseController<T extends BaseInsertRspDto,R extends BaseInsertBatchRspDto,E extends BaseDeleteByIdRspDto,
        W extends BaseDeletesRspDto,Q extends BaseDeleteBatchByIdsRspDto,A extends BaseUpdateByIdRspDto,
        S extends BaseUpdatesRspDto,D extends BaseUpdateBatchByIdsRspDto,F extends BaseSelectByIdRspDto,
        G extends BaseSelectsRspDto,H extends BaseSelectBatchByIdsRspDto,J extends BaseSelectPageRspDto> {
    public RspResult<T> returnRspResult(T rspDto){
        RspResult<T> rspResult=new RspResult<>();
        if(rspDto!=null&&rspDto.getResultInt()!=null&&rspDto.getResultInt().equals(1)){//新增一条记录成功
            return RspResult.SUCCESS;
        }else{//失败
            return RspResult.FAILED;
        }
    }
    public RspResult<R> returnRspResult(R rspDto){
        RspResult<R> rspResult=new RspResult<>();
        if(rspDto!=null&&rspDto.getResultSum()!=null&&rspDto.getResultSum()>0){//新增多条记录成功
            return RspResult.SUCCESS;
        }else{//失败
            return RspResult.FAILED;
        }
    }
    public RspResult<E> returnRspResult(E rspDto){
        RspResult<E> rspResult=new RspResult<>();
        if(rspDto!=null&&rspDto.getResultInt()!=null&&rspDto.getResultInt().equals(1)){//删除一条记录成功
            return RspResult.SUCCESS;
        }else{//失败
            return RspResult.FAILED;
        }
    }
    public RspResult<W> returnRspResult(W rspDto){
        RspResult<W> rspResult=new RspResult<>();
        if(rspDto!=null&&rspDto.getResultSum()!=null&&rspDto.getResultSum()>0){//根据指定字段删除多条记录成功
            return RspResult.SUCCESS;
        }else{//失败
            return RspResult.FAILED;
        }
    }
    public RspResult<Q> returnRspResult(Q rspDto){
        RspResult<Q> rspResult=new RspResult<>();
        if(rspDto!=null&&rspDto.getResultSum()!=null&&rspDto.getResultSum()>0){//根据id集合删除多条记录成功
            return RspResult.SUCCESS;
        }else{//失败
            return RspResult.FAILED;
        }
    }
    public RspResult<A> returnRspResult(A rspDto){
        RspResult<A> rspResult=new RspResult<>();
        if(rspDto!=null&&rspDto.getResultInt()!=null&&rspDto.getResultInt().equals(1)){//根据id修改一条记录
            return RspResult.SUCCESS;
        }else{//失败
            return RspResult.FAILED;
        }
    }
    public RspResult<S> returnRspResult(S rspDto){
        RspResult<S> rspResult=new RspResult<>();
        if(rspDto!=null&&rspDto.getResultSum()!=null&&rspDto.getResultSum()>0){//根据指定的byTestPo中的属性为选择条件,按照setTestPo中的属性进行修改符合条件的多条记录
            return RspResult.SUCCESS;
        }else{//失败
            return RspResult.FAILED;
        }
    }
    public RspResult<D> returnRspResult(D rspDto){
        RspResult<D> rspResult=new RspResult<>();
        if(rspDto!=null&&rspDto.getResultSum()!=null&&rspDto.getResultSum()>0){//根据指定多个ids,来批量修改多条记录
            return RspResult.SUCCESS;
        }else{//失败
            return RspResult.FAILED;
        }
    }
    public RspResult<F> returnRspResult(F rspDto){
        RspResult<F> rspResult=new RspResult<>();
        if(rspDto!=null){//根据指定id查询一条记录
            return new RspResult(rspDto);
        }else{
            return RspResult.FAILED;
        }
    }
    public RspResult<G> returnRspResult(G rspDto){
        RspResult<G> rspResult=new RspResult<>();
        if(rspDto!=null){//根据指定的条件查询符合条件的多条记录
            return new RspResult(rspDto);
        }else{
            return RspResult.FAILED;
        }
    }
    public RspResult<H> returnRspResult(H rspDto){
        RspResult<H> rspResult=new RspResult<>();
        if(rspDto!=null){//根据多个id查询多条记录
            return new RspResult(rspDto);
        }else{
            return RspResult.FAILED;
        }
    }
    public RspResult<J> returnRspResult(J rspDto){
        RspResult<J> rspResult=new RspResult<>();
        if(rspDto!=null){//分页查询多条记录
            return new RspResult(rspDto);
        }else{
            return RspResult.FAILED;
        }
    }

    public RspResult returnRspResult(Object rspDto){
        RspResult rspResult=new RspResult();
        if(rspDto!=null){
            return new RspResult(rspDto);
        }else{
            return RspResult.FAILED;
        }
    }
}
